Microsoft Office Excel 2010 running on Windows 7 |
|
Developer(s) | Microsoft Corporation |
Stable release | 2010 (14.0.4760.1000) / June 15, 2010 |
Operating system | Microsoft Windows |
Type | Spreadsheet |
License | Proprietary commercial software |
Website | office.microsoft.com/en-us/excel |
Microsoft Excel for Mac 2011 running on Mac OS X Snow Leopard |
|
Developer(s) | Microsoft Corporation |
Stable release | 2011 (14.0.0.100825) / October 26, 2010 |
Operating system | Mac OS X |
Type | Spreadsheet |
License | Proprietary commercial software |
Website | www.microsoft.com/mac/excel |
Microsoft Excel is a proprietary commercial spreadsheet application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables, and a macro programming language called Visual Basic for Applications. It has been a very widely applied spreadsheet for these platforms, especially since version 5 in 1993, and it has almost completely replaced Lotus 1-2-3 as the industry standard for spreadsheets. Excel forms part of Microsoft Office. The current versions are 2010 for Microsoft Windows and 2011 for Mac OS X.
Contents |
Microsoft Excel has the basic features of all spreadsheets,[1] using a grid of cells arranged in numbered rows and letter-named columns to organize data manipulations like arithmetic operations. It has a battery of supplied functions to answer statistical, engineering and financial needs. In addition, it can display data as line graphs, histograms and charts, and with a very limited three-dimensional graphical display. It allows sectioning of data to view its dependencies on various factors from different perspectives (using pivot tables and the scenario manager[2]). And it has a programming aspect, Visual Basic for Applications, allowing the user to employ a wide variety of numerical methods, for example, for solving differential equations of mathematical physics,[3][4] and then reporting the results back to the spreadsheet. Finally, it has a variety of interactive features allowing user interfaces that can completely hide the spreadsheet from the user, so the spreadsheet presents itself as a so-called application, or decision support system (DSS), via a custom-designed user interface, for example, a stock analyzer,[5] or in general, as a design tool that asks the user questions and provides answers and reports.[6][7][8] In a more elaborate realization, an Excel application can automatically poll external databases and measuring instruments using an update schedule,[9] analyze the results, make a Word report or Power Point slide show, and e-mail these presentations on a regular basis to a list of participants.
Microsoft allows for a number of optional command-line switches to control the manner in which Excel starts.[10]
The Windows version of Excel supports programming through Microsoft's Visual Basic for Applications (VBA), which is a dialect of Visual Basic. Programming with VBA allows spreadsheet manipulation that is awkward or impossible with standard spreadsheet techniques. Programmers may write code directly using the Visual Basic Editor (VBE), which includes a window for writing code, debugging code, and code module organization environment. The user can implement numerical methods as well as automating tasks such as formatting or data organization in VBA[11] and guide the calculation using any desired intermediate results reported back to the spreadsheet.
VBA was removed from Mac Excel 2008, as the developers did not believe that a timely release would allow porting the VBA engine natively to Mac OS X. VBA was restored in the next version, Mac Excel 2011.
A common and easy way to generate VBA code is by using the Macro Recorder.[12] The Macro Recorder records actions of the user and generates VBA code in the form of a macro. These actions can then be repeated automatically by running the macro. The macros can also be linked to different trigger types like keyboard shortcuts, a command button or a graphic. The actions in the macro can be executed from these trigger types or from the generic toolbar options. The VBA code of the macro can also be edited in the VBE. Certain features such as loop functions and screen prompts by their own properties, and some graphical display items, cannot be recorded, but must be entered into the VBA module directly by the programmer. Advanced users can employ user prompts to create an interactive program, or react to events such as sheets being loaded or changed.
VBA code interacts with the spreadsheet through the Excel Object Model,[13] a vocabulary identifying spreadsheet objects, and a set of supplied functions or methods that enable reading and writing to the spreadsheet and interaction with its users (for example, through custom toolbars or command bars and message boxes). User-created VBA subroutines execute these actions and operate like macros generated using the macro recorder, but are more flexible and efficient.
Excel supports charts, graphs or histograms generated from specified groups of cells. The generated graphic component can either be embedded within the current sheet, or added as a separate object.
These displays are dynamically updated if the content of cells change. For example, suppose that the important design requirements are displayed visually; then, in response to a user's change in trial values for parameters, the curves describing the design change shape, and their points of intersection shift, assisting the selection of the best design.
Windows applications such as Microsoft Access and Microsoft Word, as well as Excel as can communicate with each other and use each others' capabilities. The most common are Dynamic Data Exchange: although strongly deprecated by Microsoft, this is a common method to send data between applications running on Windows, with official MS publications referring to it as "the protocol from hell".[14] As the name suggests, it allows applications to supply data to others for calculation and display. It is very common in financial markets, being used to connect to important financial data services such as Bloomberg and Reuters.
OLE Object Linking and Embedding: allows a Windows application to control another to enable it to format or calculate data. This may take on the form of "embedding" where an application uses another to handle as task that it is more suited to, for example a Powerpoint presentation may be embedded in an Excel spreadsheet or vice versa.[15][16][17][18]
Excel users can access external data sources via Microsoft Office features such as (for example) .odc
connections built with the Office Data Connection file format. Excel files themselves may be updated using a Microsoft supplied ODBC driver.
Excel can accept data in real time through several programming interfaces, which allow it to communicate with many data sources such as Bloomberg and Reuters.
Alternatively, Microsoft Query provides ODBC-based browsing within Microsoft Excel.[23][24][25]
A major complaint is finding relevant assistance from the associated help system. Contributing to this issue is the Excel 2007 menu system, which adapts to the users' history of use. That adaptivity means that there may be no unique, or perhaps even straightforward, way to explain how to do a particular task.
Other errors specific to Excel include misleading statistics functions, mod function errors, date limitations and the Excel 2007 error.[26]
The accuracy and convenience of statistical tools in Excel has been criticized,[27][28][29][30][31] as mishandling missing data, as returning incorrect values due to inept handling of round-off and large numbers, as only selectively updating calculations on a spreadsheet when some cell values are changed, and as having a limited set of statistical tools. Microsoft has announced some of these issues are addressed in Excel 2010.[32]
The menus related to graphs and graph formatting have been changed completely in Excel 2007. Some common activities in using graphs are less transparent than previously. For example, to add a curve to a graph, one can right click on the graph and choose "select data" from the drop-down menu, or use the "chart tools/design" tab. However, when there are other drop-down menus open, this menu doesn't appear and the "select data" option is grayed out (unavailable) from the toolbar. That facet of the menu system must be "discovered" by the user. These quirks and other nontransparent features contribute to a long learning curve, and to annoyance if one returns to Excel after an absence long enough to forget these little "tricks" of the menu system.
Excel has issues with modulo operations. In the case of excessively large results, Excel will return the error warning #NUM! instead of an answer.[33][34]
Excel includes January 0, 1900 and February 29, 1900, incorrectly treating 1900 as a leap year.[35][36] The bug originated from Lotus 1-2-3, and was purposely implemented in Excel for the purpose of backward compatibility.[37] This legacy has later been carried over into Office Open XML file format.[38]
Microsoft Excel will not open two documents with the same name and instead will display the following error:
The reason is for calculation ambiguity with linked cells. If there is a cell ='[Book1.xlsx]Sheet1'!$G$33, and there are two books named "Book1" open, there is no way to tell which one the user means.[40]
Despite the use of 15-figure precision, Excel can display many more figures (up to thirty) upon user request. But the displayed figures are not those actually used in its computations, and so, for example, the difference of two numbers may differ from the difference of their displayed values. Although such departures are usually beyond the 15th decimal, exceptions do occur, especially for very large or very small numbers. Serious errors can occur if decisions are made based upon automated comparisons of numbers (for example, using the Excel If function), as equality of two numbers can be unpredictable.
In the figure the fraction 1/9000 is displayed in Excel. Although this number has a decimal representation that is an infinite string of ones, Excel displays only the leading 15 figures. In the second line, the number one is added to the fraction, and again Excel displays only 15 figures. In the third line, one is subtracted from the sum using Excel. Because the sum in the second line has only eleven 1's after the decimal, the difference when 1 is subtracted from this displayed value is three 0's followed by a string of eleven 1's. However, the difference reported by Excel in the third line is three 0's followed by a string of thirteen 1's and two extra erroneous digits. Thus, the numbers Excel calculates with to obtain the third line are not the numbers that it displays in the first two lines. Moreover, the error in Excel's answer is not just round-off error.
Excel works with a modified 1985 version of the IEEE 754 specification.[41] Excel's implementation involves an amalgam of truncations and conversions between binary and decimal representations, leading to accuracy that sometimes is better than one would expect from simple fifteen digit precision, and sometimes much worse. See the main article for details.
Besides accuracy in user computations, the question of accuracy in Excel-provided functions may be raised. Particularly in the arena of statistical functions, Excel has been criticized for sacrificing accuracy for speed of calculation.[42][43]
As many calculations in Excel are executed using VBA, an additional issue is the accuracy of VBA, which varies with variable type and user-requested precision.[44]
Microsoft originally marketed a spreadsheet program called Multiplan in 1982. Multiplan became very popular on CP/M systems, but on MS-DOS systems it lost popularity to Lotus 1-2-3. Microsoft released the first version of Excel for the Mac in 30 September 1985, and the first Windows version (numbered 2.05 to line up with the Mac and bundled with a run-time Windows environment) in November 1987.[45] Lotus was slow to bring 1-2-3 to Windows and by 1988 Excel had started to outsell 1-2-3 and helped Microsoft achieve the position of leading PC software developer. This accomplishment, dethroning the king of the software world, solidified Microsoft as a valid competitor and showed its future of developing GUI software. Microsoft pushed its advantage with regular new releases, every two years or so.
Early in 1993 Excel became the target of a trademark lawsuit by another company already selling a software package named "Excel" in the finance industry. As the result of the dispute Microsoft had to refer to the program as "Microsoft Excel" in all of its formal press releases and legal documents. However, over time this practice has been ignored, and Microsoft cleared up the issue permanently when they purchased the trademark of the other program. Microsoft also encouraged the use of the letters XL as shorthand for the program; while this is no longer common, the program's icon on Windows still consists of a stylized combination of the two letters, and the file extension of the default Excel format is .xls.
Excel offers many user interface tweaks over the earliest electronic spreadsheets; however, the essence remains the same as in the original spreadsheet software, VisiCalc: the program displays cells organized in rows and columns, and each cell may contain data or a formula, with relative or absolute references to other cells.
Excel became the first spreadsheet to allow the user to define the appearance of spreadsheets (fonts, character attributes and cell appearance). It also introduced intelligent cell recomputation, where only cells dependent on the cell being modified are updated (previous spreadsheet programs recomputed everything all the time or waited for a specific user command). Excel has extensive graphing capabilities, and enables users to perform mail merge.
With version 5.0 (1993), Excel has included Visual Basic for Applications (VBA), a programming language based on Visual Basic which adds the ability to automate tasks in Excel and to provide user-defined functions (UDF) for use in worksheets. VBA is a powerful addition to the application and includes a fully featured integrated development environment (IDE). Macro recording can produce VBA code replicating user actions, thus allowing simple automation of regular tasks. VBA allows the creation of forms and in-worksheet controls to communicate with the user. The language supports use (but not creation) of ActiveX (COM) DLL's; later versions add support for class modules allowing the use of basic object-oriented programming techniques.
The automation functionality provided by VBA made Excel a target for macro viruses. This caused serious problems until antivirus products began to detect these viruses. Microsoft belatedly took steps to prevent the misuse by adding the ability to disable macros completely, to enable macros when opening a workbook or to trust all macros signed using a trusted certificate.
Versions 5.0 to 9.0 of Excel contain various Easter eggs, including a Hall of Tortured Souls, although since version 10 Microsoft has taken measures to eliminate such undocumented features from their products.[46]
For many users, one of the most obvious changes introduced with Excel 2000 (and the rest of the Office 2000 suite) involved a clipboard that could hold multiple objects at once. In another noticeable change the Office Assistant, whose frequent unsolicited appearance in Excel 97 had annoyed many users, became less intrusive.
The most obvious change is a completely revamped user interface called the Ribbon menu system, which means a user must abandon most habits acquired from previous versions. Some practical advantages of the new system are a decreased number of mouse-clicks needed to reach a given functionality (e.g. removing the gridlines now takes 2 mouse-clicks instead of 5), greatly improved management of named variables through the Name Manager, and much improved flexibility in formatting graphs, which now allow (x, y) coordinate labeling and lines of arbitrary weight. The number of rows is now 1,048,576 and columns is 16,384. Several improvements to pivot tables were introduced. Office Open XML file formats were introduced, including .xlsm for a workbook with macros and .xlsx for a workbook without macros.[47]
This version makes more extensive use of multiple cores for the calculation of spreadsheets, however VBA macros are not handled in parallel and XLL addins only are executed in parallel if they are thread-safe and indicate this at the time of registration.
The changes in Excel 2010 are listed on the microsoft website.[48]
Versions of Excel up to 7.0 had a limitation in the size of their data sets of 16K (2^14=16384) rows. Versions 8.0 through 11.0 could handle 64K (2^16=65536) rows and 256 columns (2^8 as label 'IV'). Version 12.0 can handle 1M (2^20=1048576) rows, and 16384 (2^14 as label 'XFD') columns.[49]
Filename extension | .xls, (.xlsx, .xlsm, .xlsb - Excel 2007) |
---|---|
Internet media type | application/vnd.ms-excel |
Uniform Type Identifier | com.microsoft.excel.xls[50] |
Developed by | Microsoft |
Type of format | Spreadsheet |
Microsoft Excel up until 2007 version used a proprietary binary file format called Binary Interchange File Format (BIFF) as its primary format.[51] Excel 2007 uses Office Open XML as its primary file format, an XML-based format that followed after a previous XML-based format called "XML Spreadsheet" ("XMLSS"), first introduced in Excel 2002.[52]
Although supporting and encouraging the use of new XML-based formats as replacements, Excel 2007 remained backwards-compatible with the traditional, binary formats. In addition, most versions of Microsoft Excel can read CSV, DBF, SYLK, DIF, and other legacy formats. Support for some older file formats were removed in Excel 2007.[53] The file formats were mainly from DOS based programs.
OpenOffice.org has created documentation of the Excel format.[54] Since then Microsoft made the Excel binary format specification available to freely download.[55]
The XML Spreadsheet format introduced in Excel 2002[52] is a simple, XML based format missing some more advanced features like storage of VBA macros. Though the intended file extension for this format is .xml, the program also correctly handles XML files with .xls extension. This feature is widely used by third-party applications (e.g. MySQL Query Browser) to offer "export to Excel" capabilities without implementing binary file format. The following example will be correctly opened by Excel if saved either as Book1.xml or Book1.xls:
<?xml version="1.0"?> <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> <Worksheet ss:Name="Sheet1"> <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1" x:FullRows="1"> <Row> <Cell><Data ss:Type="String">Name</Data></Cell> <Cell><Data ss:Type="String">Example</Data></Cell> </Row> <Row> <Cell><Data ss:Type="String">Value</Data></Cell> <Cell><Data ss:Type="Number">123</Data></Cell> </Row> </Table> </Worksheet> </Workbook>
Format | Extension | Description |
---|---|---|
Spreadsheet | .xls | Main spreadsheet format which holds data in worksheets, charts, and macros |
Add-in (VBA) | .xla | Adds custom functionality; written in VBA |
Toolbar | .xlb | The file extension where Microsoft Excel custom toolbar settings are stored. |
Chart | .xlc | A chart created with data from a Microsoft Excel spreadsheet that only saves the chart. To save the chart and spreadsheet save as .XLS. XLC is not supported in Excel 2007 or in any newer versions of Excel. |
Dialog | .xld | Used in older versions of Excel. |
Archive | .xlk | A backup of an Excel Spreadsheet |
Add-in (DLL) | .xll | Adds custom functionality; written in C++/C, Visual Basic, Fortran, etc. and compiled in to a special dynamic-link library |
Macro | .xlm | A macro is created by the user or pre-installed with Excel. |
Template | .xlt | A pre-formatted spreadsheet created by the user or by Microsoft Excel. |
Module | .xlv | A module is written in VBA (Visual Basic for Applications) for Microsoft Excel |
Library | .DLL | Code written in VBA may access functions in a DLL, typically this is used to access the Windows API |
Workspace | .xlw | Arrangement of the windows of multiple Workbooks |
Microsoft Excel 2007, along with the other products in the Microsoft Office 2007 suite, introduced new file-formats. The first of these (.xlsx) is defined in the Office Open XML (OOXML) specification.
The new Excel 2007 formats are:
Format | Extension | Description |
---|---|---|
Excel Workbook | .xlsx | The default Excel 2007 workbook format. In reality a ZIP compressed archive with a directory structure of XML text documents. Functions as the primary replacement for the former binary .xls format, although it does not support Excel macros for security reasons. |
Excel Macro-enabled Workbook | .xlsm | As Excel Workbook, but with macro support. |
Excel Binary Workbook | .xlsb | As Excel Macro-enabled Workbook, but storing information in binary form rather than XML documents for opening and saving documents more quickly and efficiently. Intended especially for very large documents with tens of thousands of rows, and/or several hundreds of columns. |
Excel Macro-enabled Template | .xltm | A template document that forms a basis for actual workbooks, with macro support. The replacement for the old .xlt format. |
Excel Add-in | .xlam | Excel add-in to add extra functionality and tools. Inherent macro support because of the file purpose. |
Excel 2010 continues with these new formats.
Programmers have produced APIs to open Excel spreadsheets in a variety of applications and environments other than Microsoft Excel. These include opening Excel documents on the web using either ActiveX controls, or plugins like the Adobe Flash Player. The Apache POI opensource project provides Java libraries for reading and writing Excel spreadsheet files. ExcelPackage is another open-source project that provides server-side generation of Microsoft Excel 2007 spreadsheets. PHPExcel is a PHP library that converts Excel5, Excel 2003, and Excel 2007 formats into objects for reading and writing within a web application.
|
|